Given current processing capability, it is now practical to implement complex neural networks to perform various tasks, such as image classification. Neural networks are configured through learning, which can be referred to as a training stage. In the training stage for image classification, training data (a training set of images each having a known classification) is processed by the neural network. Thus, it is intended that the neural network learn how to perform classification for new images by generalizing the information it learns in the training stage from the training data.
One problem that can occur when training a particularly complex neural network (i.e., a neural network having a large number of parameters) is overfitting. Overfitting occurs when the neural network simply memorizes the training data that it is provided, rather than generalizing well to new examples. Generally, the overfitting problem is increasingly likely to occur as the complexity of the neural network increases.
Overfitting can be mitigated by providing the neural network with more training data. However, the collection of training data is a laborious and expensive task. One proposal has thus been to synthetically and automatically generate new training data from the existing training data. For vision tasks, this can be accomplished by label-preserving two-dimensional spatial deformations of existing training data and adding these spatially deformed images to the training set. However, the generated images will be correlated, likely highly correlated, with the original training images. Furthermore, the increase in size of the training set is limited in this approach. Thus, this technique is generally accepted to be inferior to actually collecting more independent training data.
It is an object of the following to obviate or mitigate at least one of the foregoing issues.